from io import StringIO
from io import BytesIO

# StringIO顾名思义就是在内存中读写str
str_1 = StringIO()
str_1.write("hello ")
str_1.write("world")
print(str_1.getvalue())  # 使用getvalue()函数来获得内存中的string

str_2 = StringIO("本节目由以下组织赞助播出\n远坂时臣保护协会\n蕾姆后援骑士团\n后街女孩被害者协会")
while True:
    s = str_2.readline()
    if s == "":
        break
    print(s.strip())  # strip() 方法用于移除字符串头尾指定的字符（默认为空格或换行符）或字符序列

# StringIO操作的只能是str，如果要操作二进制数据，就需要使用BytesIO。
# BytesIO实现了在内存中读写bytes，我们创建一个BytesIO，然后写入一些bytes
f1 = BytesIO()
f1.write("中文".encode("UTF-8"))
print(f1.getvalue())  # 输出b'\xe4\xb8\xad\xe6\x96\x87'

f2 = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
print(f2.read())  # 输出b'\xe4\xb8\xad\xe6\x96\x87'
